1. Field of the Invention
The present invention relates to networks, and more particularly to routing network packets in switches.
2. Background of the Invention
Switches are commonly used in networks. A typical switch routes network packets (may also be referred to herein as “packets”) from one port to another port. Various industry standards and protocols are used to monitor and manage data packet transmission through networks and switches. One such standard is Infiniband published by the Infiniband Trade Association and incorporated herein by reference in its entirety. Infiniband provides an architecture that allows a single unified input/output (I/O) fabric. The standard provides a virtual lane (VL) mechanism that allows network data packets from different sources and bound for different destinations, to flow through a single channel. The standard also describes how data packets are processed for delivery within each virtual lane.
Switches in networks typically use a central arbitration unit that selects input/out ports for initiating packet transfer. Various algorithms are used by arbitration units for selecting (or not selecting) a particular port for packet transfer.
Typically, arbitration units arbitrate port “requests” without any knowledge of remote port buffer space and size where the packets are stored after delivery. Hence, in conventional switches, the arbitration unit transfers data packets without knowing how much remote buffer space is available for storing the transferred packet(s). This can result in packet dropping, port stalling and remote buffer overrun.
In addition, most arbitration units select packets for transmission based on a first in-first out (FIFO) model. This is inefficient if packets are received from the same source and are meant for the same destination using the same virtual lane. In this case, the FIFO model is inefficient because packets with the foregoing conditions should be sent in close proximity to each other rather than waiting to satisfy the FIFO requirements.
Another drawback in conventional switch fabrics is that packets are accumulated, bundled and then transmitted. This increases latency based on the number of packets.
Therefore, what is needed is a process and system, such that switches can efficiently transmit packets and also arbitrate and select packets for transmission with minimum packet dropping, port stalling and remote buffer overrun.